﻿namespace Kyoh.Lib.Excel
{
    /// <summary>印刷領域にある水平方向の改ページのコレクションです。水平方向の各改ページは、<see cref="HPageBreak"/> オブジェクトによって表されます。</summary>
	public class HPageBreaks : Component
	{
		private HPageBreaks(object obj, Component parent)
			: base(obj, parent) { }

        /// <summary>Excel COM オブジェクトで、新しいインスタンスを初期化します。</summary>
        /// <param name="obj">Excel COM オブジェクト</param>
        /// <param name="parent">親となる <see cref="Component"/> オブジェクト。</param>
		internal static HPageBreaks Create(object obj, Component parent)
		{
			return (obj == null) ? null : new HPageBreaks(obj, parent);
		}

        /// <summary>要素の個数を取得します。</summary>
		public int Count { get { return (int)base.GetProperty("Count"); } }

        /// <summary>インデックスを指定して要素を取得します。</summary>
        /// <param name="Index">インデックス。</param>
		public HPageBreak this[int Index]
		{
			get { return HPageBreak.Create(base.GetProperty("Item", Index), this); }
		}

        /// <summary>指定のセル位置に改ページを追加します。</summary>
        /// <param name="Before">改ページを追加する位置のセル。</param>
        /// <returns>追加した改ページを表す <see cref="HPageBreak"/></returns>
		public HPageBreak Add(Range Before)
		{
			return HPageBreak.Create(base.InvokeMethod("Add", Before.ExcelComObject), this);
		}
	}
}